module.exports = {
    default: function(context) {
        return {
			plugin: function (md, _options) {
				const pluginId = context.pluginId;
                // 插件的也要ts，js一直报 export不存在
                // md.core.ruler.before("block","taglevellink",async function (state){
                md.core.ruler.before("inline","taglevellink",async function (state){
                    console.log('-----------state----')
                    console.log(state)
                    console.log(state.tokens)

                    for(let token of state.tokens){
                        if(token.type != 'inline'){
                            continue
                        }
                        var result = token.content;
                        // (?<!#|\[)#([^#|>|"]*?)[ ,\n] 《=  #([^# ].*?)[ ,\n]；
                    //  之前改为了只处理inline，为了解决[#orange]问题，现在表达式已经支持了，还匹配多了次，但是 css中的  BackgroundColor #FFBBCC  还不行。还用这个吧
                        let rg = /(?<!#|\[)#([^#|>|"]*?)[ ,\n]/g;
                        let match = (result+'\n').match(rg);
                        if(match == null){
                            continue
                        }
                        console.log(match)
                        for (let replacestr of match) {
                            let id = ''
                            let matchstr = /(?<=(#)).*?(?=([ ,\n]))/g.exec(replacestr+'\n');
                            if(matchstr && matchstr.length>0) {
                                let tagarr = matchstr[0].split('/')
                                let findtagstr = tagarr[tagarr.length-1]
                                if(findtagstr && findtagstr.length > 0){
                                    let rep = replacestr.replace('\n','')
                                    result = result.replace(rep, '<a href=# class=\'tagclass\'>'+rep+'</a>');
                                    console.log("1:" + result);
                                }
                            }
                        }
                        token.content = result
                    }
                    return true


                    // var result = state.src;
                    // // let rg = /#([^# ].*?)[ ,\n]/g;
                    // let rg = /(?<!#|\[)#([^#|>|"]*?)[ ,\n]/g;
                    // let match = (result+'\n').match(rg);
                    // if(match == null){
                    //     console.log('match null'+result)
                    //     state.src = result
                    //     return 
                    // }
                    // for (let replacestr of match) {
                    //     let id = ''
                    //     let matchstr = /(?<=(#)).*?(?=([ ,\n]))/g.exec(replacestr+'\n');
                    //     if(matchstr && matchstr.length>0) {
                    //         let tagarr = matchstr[0].split('/')
                    //         let findtagstr = tagarr[tagarr.length-1]
                    //         if(findtagstr && findtagstr.length > 0){
                    //             result = result.replace(replacestr, '<a href=# class=\'tagclass\'>'+replacestr+'</a>');
                    //             // console.log("1:" + result);
                    //         }
                    //     }
                    // }
                    // state.src = result
            
                })
			},
			assets: function () {
                // 加载额外的js
				return [
					{ name: 'taglevellink.css'},
                    { name: 'taglevellink.js'},]
			}
		}
	}
}
